Information processing device and method, recording medium, and program

ABSTRACT

The present invention relates to an information processing apparatus and method, recording medium, and program capable of generating a priority table in a straightforward manner. JPEG 2000 data  151  inputted to a table generation section  114  is held by a JPEG 2000 data reading section  161,  and is provided to a JP2 packet information extraction section  162  at a prescribed timing. After the necessary JP2 packet information has been extracted in packet form, this is provided to a priority table editing section  164 . Then, at the priority table editing section  164,  a priority table with priority values set for all of the JP2 packets is made based on setting information  152  designating priority values for some of the JP2 packets corresponding to the JPEG 2000 data  151  provided by the setting information reading section  163  and is outputted by the priority table output section  165 . The present invention can be applied to personal computers.

TECHNICAL FIELD

The present invention relates to an information processing apparatus andmethod, recording medium, and program, and particularly relates to aninformation processing apparatus and method, recording medium andprogram capable of generating priority tables in an easier manner byalso setting priority values for packets that are not set with priorityvalues.

BACKGROUND ART

In recent years, services of distributing streaming data that enablesits display in real-time while acquiring data such as moving images etc.via the Internet have proliferated.

Data quality deterioration due to packet loss and delays in arrival is aproblem when carrying out such a streaming distribution over theInternet. So-called error propagation occurs where the picture qualityof subsequent frames is influenced if data for a certain frame isdropped due to packet loss in the case of encoding methods such as MPEG(Moving Picture Experts Group) and H.26x systems, in which differencesbetween frames are taken. Further, the compression rate can be increasedin the MPEG method using movement prediction but algorithms becomecomplex if movement prediction is carried out and as this processingtime becomes larger in proportion to the square of frame size,theoretically, a coding delay for an amount of several frames occurs.The delay time in this case is such that the time delay is on theborderline of 250 ms that is the permitted delay time when carrying outtwo-way communication in real-time.

On the other hand, Motion JPEG 2000 is for handling moving images bycontinuously reproducing the still image compression algorithm JPEG 2000and is the successor to JPEG (Joint Photographic Expert Group). Thisfile format is defined in part 3 of the JPEG 2000 standard standardizedby the ISO (International Organization for Standardization). Motion JPEG2000 is a moving image format that does not capture frame differencesand would not experience the problems described above. Further, JPEG2000 that is the foundation for Motion JPEG 2000 increases compressionrate by using wavelength conversion and entropy encoding. As this is amoving image format that does not capture frame differences, compressionand picture quality is higher than with the same Motion JPEG and DVcodecs (Digital Video codec). Moreover, tolerance of various errors canbe achieved with JPEG 2000 and it is considered that a moving imageformat such as Motion JPEG 2000 that does not take differences isappropriate for environments where packet loss occurs such as on theInternet.

In the event of carrying out streaming distribution of moving image datacompressed using JPEG 2000, moving image data is distributed in packetform using RTP (Real-time Transport Protocol). “RTP Payload Format forJPEG 2000 Video streams” has been proposed as an Internet draft as anRTP format for streaming distribution employing JPEG 2000. An example ofthis RTP format is described with reference to FIG. 1 and FIG. 2. TheRTP format shown in FIG. 1 and FIG. 2 is based on that disclosed in“draft-ietf-avt-rtp-jpg2000-00.txt”.

In FIG. 1, an RTP packet 10 is comprised of an IP header 11 containingheader information for IP (Internet Protocol) use, a UDP header 12containing header information for UDP (User Datagram Protocol) use, anRTP header 13 containing header information for usual RTP use, an RTPpayload header 14 containing header information for streamingdistribution of JPEG 2000 data, and JPEG 2000 data 15 distributed bystreaming.

At the RTP packet 10, the IP header 11 is 20 bytes, the UDP header 12 is8 bytes, the RTP header 13 is 12 bytes, the RTP payload header 14 is 8bytes, and the JPEG 2000 data is in the order of 10 to 1400 bytes.

FIG. 2 is a view showing the details of the RTP header 13 and the RTPpayload header 14 shown in FIG. 1.

In FIG. 2, the RTP header 13 is comprised of version bits (V) 21 of twobits, a padding bit (P) 22 of one bit, an extension bit (X) 23 of onebit, a contributing sources identifier (Contributing Sources) count bit(CC(CSRCcount)) 24 of four bits, a marker (M) 25 of one bit, a payloadtype (Payload type) 26 of seven bits, a sequence number (Sequence number27) of 16 bits, an RTP time stamp (RTP timestamp) 28 of 32 bits, and asynchronization sources identifier (SSRC(Synchronization Sources)) 29 of32 bits.

The RTP payload header 14 continuing on from the RTP header 13 iscomprised of an enable bit (E) 31 of one bit, an extension bit (X) 32 ofone bit, a main header (M) 33 of one bit, a tile header (T) 34 of onebit, a termination flag (L) 35 of one bit, a main header ID (Mh₁₃ id) 36of 3 bits, a priority (Priority) 37 of 8 bits, a tile header ID(tile_id) 38 of 16 bits, and an offset value (Fragment offset) 39 of 32bits.

The version bits (V) 21 of the RTP packet 13 are bits showing theversion of the RTP. The padding bit (P) 22 shows the presence of paddingat the end of the data if this value is “1” and the extension bit 23indicates the presence of an extension header if this value is “1”.

Further, the contributing sources identifier count bit (CC) 24 shows thenumber of contributing source identifiers (CSRC) contained in the RTPheader 13. The marker (M) 25 is dependent on the payload type and hasvarious uses, and the payload type (Payload type 26) expresses the typeof the transmitted stream. Moreover, the sequence number (Sequencenumber) 27 is constructed from a number showing the packet order.

Further, the RTP time stamp (RTP timestamp) 28 indicates a clock valuefor this data, and the synchronization sources identifier (SSRC) 29 is asynchronization source identifier (Synchronization Sources) constitutingan ID (IDentification) for uniquely identifying the sender.

The enable bit (E) 31 of the RTP payload header 14 is a JPEG 2000payload header validation bit, and if the value of this enable bit (E)31 is “0”, it is shown that each of the fields of the main header (M)33, tile header (T) 34, termination flag (L) 35, main header ID (Mh_id)36, priority (Priority) 37, and tile header ID (tile_id) 38 are notused, and these field values are all set to “0”. Further, conversely, ifthe value of the enable bit (E) 31 is “1”, this shows that the values ofthe aforementioned fields are all effective. The fields of the extensionbit (X) 32 and the offset value (Fragment offset) 39 are always validregardless of the value of the enable bit (E) 31.

The extension bit (X) indicates the continuation of the extension headerif this value is “1”.

Further, the main header (M) 33 indicates the presence of a main headerin a packet, the tile header (T) 34 indicates the presence of a tileheader in a packet, and the termination flag (L) 35 indicates thepresence of the very end of a main header or tile header in a packet.

In the event that the combination of values for the main header (M) 33,tile header (T) 34 and termination flag 35 is, in order, “101”, the data15 of the JPEG 2000 of FIG. 1 is configured from only the main header oris configured only from the final portion within the main header whichis divided into a plurality of parts. In the event that the combinationof values for the main header (M) 33, tile header (T) 34 and terminationflag (L) 35 is, in order, “011”, the JPEG 2000 data 15 of FIG. 1 isconfigured from a title header and JPEG 2000 packet (hereinafterreferred to as a JP2 packet), or only a final portion within a tileheader that has been divided into a plurality.

Further, in the event that the combination of values for the main header(M) 33, tile header (T) 34 and termination flag (L) 35 is, in order,“100”, the JPEG 2000 data of FIG. 1 is configured from the first portionwithin a main header divided into a plurality or only a middle portion.In the event that the combination of values for the main header (M) 33,tile header (T) 34 and termination flag (L) 35 is, in order, “010”, theJPEG 2000 data 15 of FIG. 1 is configured from a first portion withinthe tile headers divided into a plurality or a middle portion only.

Moreover, in the event that the combination of values for the mainheader (M) 33, tile header (T) 34 and termination flag (L) 35 is, inorder, “111”, the JPEG data 15 of FIG. 1 is configured from a mainheader and a tile header, or is configured from a main header, tileheader and JP2 packet.

Namely, through combinations of these values as shown above, the mainheader (M) 33, tile header (T) 34 and termination flag (L) 35 indicatewhat kind of header section is configured at a packet.

An ID of the main domain is shown at the main header ID (Mh_id) 36 ofFIG. 2, and contains values (“1” to “7”) that are incremented every timethe main header changes. The value “0” is set if this is not-yet used.

Priority (Priority) 37 expresses the level of importance (1 to 254) ofthe JP2 packet within the RTP packet.

The tile header ID (tile_id) 38 is set with a tile header within thepayload and the title ID (0x0000 to 0xffff) to which the JP2 packetbelongs. In the event that only a main header exists, the value “0” canbe set to the tile header ID38.

The offset value (Fragment offset) 39 indicates an offset value withinthe JPEG2000 frame data, i.e. an octet number from the header of theframe.

When the priority value set at the priority (Priority) 37 of the RTPpayload header 14 shown in FIG. 2 is “1”, the priority is the highest,with the priority falling every time the value is increased, so that thepriority in the case of “254” gives the lowest priority.

In, for example, the event that a user views only part of an entireimage of an image with a broad range such as an omni-directional image,the priority value is a value referenced while decoding only image datacorresponding to a requested portion (containing a portion for thisrange as requested) rather than image data corresponding to the wholeimage. Further, it is there possible to carry out partial distributionby distributing only data corresponding to part of the image by havingthe distribution server carrying out the streaming distribution refer tothis priority value.

Moreover, for example, in the event of terminals connected to networksof narrow bandwidths or carrying out streaming distribution with respectto terminals of low playback performance, only the first JPEG 2000 datawithin a single image frame encoded using layer encoding is decoded.This means that it is possible to output images of low resolution andimages of coarse picture quality and overflow can therefore beprevented.

The distribution server refers to the priority value every JP2 packet,and is capable of carrying out scaleable distribution the distributesonly part of the data.

Further, this priority value can be set based on a priority mappingtable prepared each session. When the JPEG 2000 data (JP2 packet) in thepacket is a header section, the priority value is set with the value “0”for the highest priority, and in the event of a data section, valuesfrom “1” to “254” can be set. In the event that a priority mapping tabledoes not exist, a value “255” indicating that this field does not yetexist can be set.

FIG. 3 is a view showing an example of a priority table.

In FIG. 3, a priority table 41 is a correspondence table for a layer (L(layer)), resolution (R(resolution)), component (C (component)) andprecinct (P (precinct)), and priority value (Priority). The prioritytable 41 is a table for the case where the priority value is set takinga layer as a reference.

FIG. 4 is a view showing a further example of a priority table.

The priority table 51 shown in FIG. 4 is a table for the case where thepriority value is set taking resolution as a reference.

However, in the event that, for example, a single JPEG 2000 frame isconfigured from a large number of JP2 packets and the priority valuesare set to be fine, it is necessary to set priority for all of the JP2packets. Because of this, it is necessary to be aware of the number ofJP2 packets and it is necessary to set priority values just for thisnumber of packets, which requires a complex operation.

FIG. 5 is a view showing an example of a priority table occurring inthis case.

In the event that the priority value is set to fine, as with thepriority table 61 shown in FIG. 5, the amount of data for the prioritytable prepared in advance is substantial, and the amount of workinvolved in generating this table increases.

DISCLOSURE OF INVENTION

The present invention made in view of this kind of situation, and makesit possible to generate a priority table in easier manner.

An information processing apparatus of the present invention ischaracterized by including: setting information acquisition means foracquiring setting information for which priority values corresponding tosome of packets within image data put into packet form are designated;packet information read-out means for reading out packet informationcontaining information relating to putting image data into the form ofpackets from the image data; and priority table generation means forgenerating a priority table with priority values set for all packetsbased on setting information acquired by the setting informationacquisition means and packet information read out by the packetinformation reading means.

The packet information may be made to contain the numbers of packets andthe levels of importance corresponding to the image data.

A setting rule deciding means for deciding rules for setting priorityvalues for all of the packets may be further provided. The prioritytable generation means may use the rules decided by the setting rulesdeciding means to set priority values for all of the packets and makethe priority table.

The priority table generation means may set a priority value larger thana value set for one previous packet if a priority value is set forpackets other than packets set with priority values using the settinginformation.

In the event that priority values are set for packets other than packetsset with priority values using the setting information, the prioritytable generation means may set a priority value larger than the valueset for one packet previous if the packet's level of importance isdifferent to the packet's level of importance for one packet previous,and a priority value that is the same value as the value set for onepacket previous may be set if the packet's level of importance is thesame as the packet's level of importance for one packet previous.

The priority table generation means may set a priority value that is thesame value as a value set for one packet previous if a priority value isset for packets other than packets set with priority values using thesetting information.

An information processing method of the present invention ischaracterized by including: a setting information acquisitioncontrolling step of controlling acquisition of setting information forwhich priority values corresponding to some of packets within image dataput into packet form are designated; a packet information read-out stepof reading out packet information containing information relating toputting image data into the form of packets from the image data; and apriority table generation step of generating a priority table withpriority values set for all packets based on setting informationacquired by processing of the setting information acquisition controlstep and packet information read out by processing of the packetinformation reading step.

A program of a recording medium of the present invention ischaracterized by including a setting information acquisition controllingstep of controlling the acquisition of setting information for whichpriority values corresponding to some of packets within image data putinto packet form are designated; a packet information read-out step ofreading out packet information containing information relating toputting image data into the form of packets from the image data; and apriority table generation step of generating a priority table withpriority values set for all packets based on setting informationacquired by processing of the setting information acquisition controlstep and packet information read out by processing of the packetinformation reading step.

A program of the present invention is characterized by implementing on acomputer; a setting information acquisition controlling step ofcontrolling the acquisition of setting information for which priorityvalues corresponding to some of packets within image data put intopacket form are designated; a packet information read-out step ofreading out packet information containing information relating toputting image data into the form of packets from the image data; and apriority table generation step for generating a priority table withpriority values set for all packets based on setting informationacquired by processing of the setting information acquisition controlstep and packet information read out by processing of the packetinformation reading step.

With the information processing apparatus and method, recording medium,and program of the present invention, setting information with priorityvalues designated corresponding to some of the packets within image dataput into packet form is acquired, packet information containinginformation relating to putting image data into packet form is read outfrom the image data, and a priority table set with priority values forall of the packets is made based on this setting information and packetinformation.

A network refers to a construction whereby at least two apparatuses areconnected to each other so that a certain apparatus is capable oftransmitting information to another apparatus. Apparatuses communicatingvia the network may be independent apparatuses or may be internal blocksthat make up a single apparatus.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a view showing an example RTP packet format.

FIG. 2 is a view showing an example of a detailed configuration for aRTP header and a RTP payload header shown in FIG. 1.

FIG. 3 is a view showing an example of a priority table of the relatedart.

FIG. 4 is a view showing a further example of a priority table of therelated art.

FIG. 5 is a view showing a still further example of a priority table ofthe related art.

FIG. 6 is a view showing an example configuration for an imageinformation distribution system to which the present invention isapplied.

FIG. 7 is a view showing an example configuration for a table generationapparatus of FIG. 6.

FIG. 8 is a view showing an internal configuration for a tablegeneration section of FIG. 7.

FIG. 9 is a view showing an example configuration for a distributionserver of FIG. 6.

FIG. 10 is a view showing a data configuration for one frame of JPEG2000 data.

FIG. 11 is a view showing an example of dividing an image up into Mtiles.

FIG. 12 is a view showing an example situation for generating a prioritytable.

FIG. 13 is a flowchart illustrating a priority table generation processperformed by a table generation apparatus of FIG. 6.

FIG. 14 is a flowchart continuing on from FIG. 13 illustrating apriority table generation process performed by a table generationapparatus of FIG. 6.

FIG. 15 is a flowchart continuing on from FIG. 14 illustrating apriority table generation process performed by a table generationapparatus of FIG. 6.

FIG. 16 is a view showing an example of a table containing settinginformation.

FIG. 17 is a view showing an example priority value.

FIG. 18 is a view showing an example of a priority table made by a tablegeneration apparatus of FIG. 6.

FIG. 19 is a view showing a further example of a priority table made bya table generation apparatus of FIG. 6.

FIG. 20 is a view showing a still further example of a priority tablemade by a table generation apparatus of FIG. 6.

BEST MODE FOR CARRYING OUT THE INVENTION

FIG. 6 is a view showing an example configuration for an imageinformation distribution system to which the present invention isapplied.

In FIG. 6, a table generation apparatus 101 for generating a prioritytable is connected to a network 102. Further, a distribution server 103for carrying out streaming distribution is connected to a network andthe table generation apparatus 101, puts moving image data into the formof packets based on a table provided by the table generation apparatus101, and distributes moving image data via the network 102. Moreover,clients 104 and 105 are connected to the network 102 and acquire contentdata distributed by the distribution server 103 via the network 102.

The table distribution apparatus 101 generates a priority tablecorresponding to moving image data which is subjected to streamingdistribution by the distribution server 103 based on inputted settinginformation and predetermined setting information.

In the event of requests from clients 104 and 105, the distributionserver 103 acquires a priority table corresponding to the requestedmoving image data from the table generation apparatus 101, splits themoving image data up into RTP packets while allotting priority based onthe acquired priority table, and distributes to requesting parties, theclients 104 and 105, via the network 102.

At the same time as acquiring RTP packets provided by the distributionserver 101 via the network 102, the clients 104 and 105 generate movingimage data using the acquired RTP packets and display correspondingmoving images at a display etc.

Only two clients are shown in this example but an arbitrary number ofclients can be connected to the network 102. Further, it is alsopossible to connect a plurality of table generation apparatuses 101 anddistribution servers 103 to the network 102.

FIG. 7 is a view showing an example configuration for the tablegeneration apparatus 101.

In FIG. 7, a CPU (Central Processing Unit) 111 executes variousprocessing in accordance with programs stored in a ROM (Read OnlyMemory) 112 and programs loaded into a RAM (Random Access Memory) 113from a storage section 123. Data etc. required for the CPU 111 toexecute various processes is also appropriately stored in RAM 113.

A table generation section 114 configured from a program executed by theCPU 111 (this may also be configured from hardware) takes settinginformation inputted as a result of a user operating an input section121 as input via a communication section 124 etc., and generates apriority table corresponding to moving image data distributed by thedistribution server 103 using setting information etc. stored in advancein the storage section 123.

The CPU 111, ROM 112 and RAM 113 are connected together via the bus 115.An input/output interface 120 is also connected to this bus 110.

An input section 121 comprised of a keyboard and mouse etc., a displaycomprised of a CRT or LCD etc., an output section 122 comprised of aspeaker etc., a storage section 123 comprised of a hard disc etc., and acommunication section 124 comprised of a modem or terminal adapter etc.are connected to the input/output interface 120. The communicationsection carries out communication processing of analog signals anddigital signals with the distribution server 103 and carries outcommunication processing via the network 102.

A drive 130 is connected to the input/output interface 120 as necessary,and a magnetic disc 131, optical disc 132, magneto-optical disc 133, orsemiconductor memory 134 etc. are installed as appropriate. Computerprograms read from these media are then installed in the storage section123 as necessary.

FIG. 8 is a view showing an internal configuration for the tablegeneration section 114.

In FIG. 8, a JPEG 2000 data reading section 161 reads in JPEG 2000 data151 stored in the storage section 123 (or RAM 113) as input at aprescribed timing, and provides this to a JP2 packet informationextraction section 162. The JP2 packet information extraction section162 extracts JP2 packet information required to make packets from JPEG2000 data 151 provided by the JPEG 2000 data reading section 161 andprovides this to a priority table editing section 164.

A setting information reading section 163 reads in setting information152 stored in the storage section 123 (or RAM 113) provided from outsideat a prescribed timing and provides this to the priority table editingsection 164.

The priority table editing section 164 edits a priority table 171 basedon JP2 packet information provided by the JP2 packet informationextraction section 162 and setting information 152 provided by thesetting information reading section 163, edits the priority table 171,and outputs this to the priority table output section 165. The prioritytable output section 165 then outputs the provided priority table 171 tooutside at a prescribed timing. The outputted priority table 171 isstored in a storage section 123 etc. via the bus 115.

FIG. 9 is a view showing an example configuration for the distributionserver 103.

In FIG. 9, a CPU (Central Processing Unit) 211 executes variousprocessing in accordance with programs stored in a ROM (Read OnlyMemory) 212 and programs loaded into a RAM (Random Access Memory) 213from a storage section 223. Data etc. required for the CPU 211 toexecute various processes is also appropriately stored in RAM 213.

The CPU 211, ROM 212, and RAM 213 are connected together via a bus 215.An input/output interface 220 is also connected to this bus 215.

An input section 221 comprised of a keyboard and mouse etc., a displaycomprised of a CRT or LCD etc., an output section 222 comprised of aspeaker etc., a storage section 223 comprised of a hard disc etc., and acommunication section 224 comprised of a modem or terminal adapter etc.are connected to the input/output interface 220. The communicationsection 224 carries out communication processing via the network 102.The communication section 224 carries out communication processing ofanalog signals and digital signals with the table generation apparatus101.

A drive 230 is connected to the input/output interface 220 as necessary,and a magnetic disc 231, optical disc 232, magneto-optical disc 233, orsemiconductor memory 234 etc. are installed as appropriate. Computerprograms read from these media are then installed in the storage section233 as necessary.

Next, a description is given of a format for the JPEG 2000 data.

FIG. 10 is a view showing a data configuration for one frame of JPEG2000 data.

In FIG. 10, the data 250 constituting JPEG 2000 data for one frame isconfigured from a main header (MH) 251 that is a header sectioncontaining header information for one frame portion of data, and a datasection 252 comprised of moving image data for one frame portioncompressed using JPEG 2000.

Further, with JPEG 2000, it is possible to split an image up intoseveral arbitrary regions that are referred to as tiles and decode onlytiles for one part. Each tile size is of a fixed size designated at thetime of encoding, with the tile size being described in the JPEG 2000header. Index numbers in a direction from the upper left of the entireimage to the lower right are provided at each tile. If the index numberof this tile is known, there is the benefit that it is easy to determinewhich image portion of the whole image this tile image is for. Further,it is possible to independently encode respective portions. It istherefore possible to make savings with regards to storage regions andnetwork bandwidth by dropping picture quality of portions the user doesnot particularly take notice of (for example, upper end and lower endportions of a spatial image mapped to a cylinder) and increasingcompression rate.

Namely, JPEG 2000 has a function capable of decoding even when TRUNCATEimages (portions of encoded data) are inputted to a decoder (client 104or 105) and it is therefore possible to only distribute the necessarytiles.

FIG. 11 shows an example of an image split up into M+1 tiles. As indexnumbers are allotted in order from 0 to M to the tiles, for example, anupper left coordinate for a tile image of index 3 can easily be known as(tile_width×3, 0). Here, tile_width expresses the width of the tile.Further, if tile_height expresses the height of the tile, a coordinatein a vertical direction for this tile can be known from a quotient valueobtained by dividing the index number a number of times in thehorizontal direction of the tile and the tile_height.

Returning to FIG. 10, moving image data for the data section 252 isconfigured as tile data 260-0 to 260-M every tile as described above.The tile data 260-0 is configured of a tile header (TH) 261 constitutinga header section and a tile data section 262 constituting moving imagedata for one tile. The tile data section 262-0 is configured using data(JP2_0 to JP2_N) for every unit divided when putting into the form ofRTP packets. Tile data 262-1 to 262-M is configured in the same way asthe tile data 262-0 and description thereof is therefore omitted.

Next, a description is given of a method for generating a priority tablecorresponding to the JPEG 2000 data configured in the above manner.

FIG. 12 is a view showing an example situation for generating a prioritytable.

In FIG. 12, first, the CPU 211 of the distribution server 103 providesJPEG 2000 data 151 pre-registered in a JPEG 2000 database 313 configuredin the storage section 223 to the table generation apparatus 101 via thecommunication section 224.

The table generation section 114 of the table generation apparatus 101acquires JPEG 2000 data 151 provided by the distribution server 103 viathe JPEG 2000 data reading section 161 (communication section 124). Thesetting information reading section 163 then acquires settinginformation 152 for generating a priority table pre-registered in asetting information database 302 made at the storage section 123.Setting information registered in the setting information database 302may be setting information made as a result of a user operating theinput section 121 or may be setting information inputted from theoutside via the communication section 124. Further, setting informationinputted via the drive 130 using a recording medium is also possible.

The priority table editing section 164 generates a priority table 171corresponding to inputted JPEG 2000 data based on inputted JPEG 2000data 151 and setting information 152. The priority table output section165 then provides the priority table 171 made in this way to the tabledatabase 301 configured at the storage section 123 for recording.

For example, in the event that there is a request at a client forstreaming distribution, the CPU 211 of the distribution server 103acquires JPEG 2000 data 311 requested for distribution from the JPEG2000 database 301 of the storage section 223, acquires a correspondingpriority table 312 from the table database 303 of the table generationapparatus 101 via the communication section 224, and holds this in RAM213 etc. as transmission data 310. The CPU 211 puts the transmissiondata 310 into the form of packets at a prescribed timing and providesthese to the client 104 via the network 102.

Next, a description is given of a priority table generation processperformed by the table generation apparatus 101 with reference to FIG.13 to FIG. 15.

In step S1 of FIG. 13, first, the JPEG 2000 data reading section 161 ofthe table generation apparatus 101 acquires and holds JPEG 2000 data 151for generating a table via the communication section 124 using thedistribution server 103.

The JPEG 2000 data reading section 161 then provides the held JPEG 2000data 15 to the JP2 packet information extraction section 162 at aprescribed timing. In step S2, the JP2 packet information extractionsection 162 reads out the number of JP2 packets made (J2PNUM) and thelevel of importance of each JP2 packet from the provided JPEG 2000 data151 and provides this information to the priority table editing section164.

As described in FIG. 10, the data 250 for each frame of the JPEG 2000data 151 is such that data is configured every time a unit is put intopacket form. The JP2 packet information extraction section 162 thenreads out the number of JP2 packets made by counting these numbers andreferring to information contained in the title headers (TH) 261-0 to261-M or the main header (MH) 251.

Further, as described in the following with reference to FIG. 17, theJPEG 2000 data is such that the levels of importance are designated inadvance for every unit put into packet form. The JP2 packet informationextraction section 162 then reads out the levels of importance of themade JP2 packets by referring to information contained in the titleheaders (TH) 261-0 to 261-M or the main header (MH) 251.

In step S3, the setting information reading section 163 acquires andholds setting information corresponding to acquired JPEG 2000 datastored in advance in the storage section 123 (setting informationdatabase 302).

The kind of table shown in FIG. 16 is contained in the settinginformation.

In FIG. 16, the table 351 contained in the setting information is acorrespondence table of conditions for layers (L) and resolution (R) anddesignated priority values. As shown in FIG. 16, priority values are notset for all JP2 packets but rather only conditions for arbitrary numbersdesignated by the user and corresponding priority values are recorded.In the example in FIG. 16, in the event that the layer is “0”, if theresolution is “0”, the priority value is taken to be “10”, and if theresolution is “one or more”, the priority value is taken to be “20”.Further, if the resolution is “0 or more” with a layer of “1”, thepriority value is taken to be “30”.

The setting information reading section 163 holds setting informationcontained in the table 351 shown in FIG. 16 and provides this to thepriority table editor 164 at a prescribed timing.

In step S4, the priority table editor 164 initials each of the variablesto be used in editing the priority table. NJP indicating numbers of JP2packets taken as targets, NP indicating the current priority value, NLindicating the level of importance of the current JP2 packet, and FJPindicating the starting number of JP2 packets having the same prioritynumbers are prepared as variables for use in editing the priority table.The priority table editor 164 performs initialization by setting thevalue of NJP to “1”, setting the value of NP to “1”, setting the valueof NL to the level of importance of the first JP2 packet, and settingthe value of FJP to “0”.

Further, at this time, the priority table editing section 164 decidesupon the method (rule) for setting the priority value. As described inthe following with reference to FIG. 17, for example, three rulesconsisting of a rule to increment the priority value every JP2 packet, arule to increment every time the level of importance of a JP2 packetchanges, and a rule not to increment are prepared as rules for settingthe priority value. The priority table editing section 164 thenselectively decides the setting rules based on inputted settinginformation or based on a designation inputted as a result of a useroperating the input section 121.

The rules for setting the priority values prepared here may be rulesother than those described above and there may be any number of rules.

In step S5, the priority table editing section 164 completing theprocessing in step S4 extracts data for one packet taken as a targetfrom the acquired JPEG 2000 data, and a determination is made as towhether or not the JP2 packet that is the extracted data put into packetform is a JP2 packet of a priority value designated by the settinginformation.

In the event that it is determined that the JP2 packet that is theextracted data put into packet form is a JP2 packet of a designatedpriority value, the priority table editing section 164 advances theprocessing to step S6, assigns the designated priority value based onthe setting information to the variable NP, and advances processing tostep S7.

In step S4, in the event that it is determined that the JP2 packet thatis the extracted data put into packet form is not a JP2 packet of adesignated priority value, the priority table editing section 164 omitsthe processing of step S6 and advances processing to step S7.

In step S7, the priority table editing section 164 adds one to the valueof the variable NJP and the processing of step S8 of FIG. 14 is advancedto.

In step S8 of FIG. 14, the priority table editing section 164 extractsdata (data for the next packet) for one packet constituting a targetfrom the acquired JPEG 2000 data and determines whether or not the JP2packet that is the extracted data put into packet form is the JP2 packetfor which the priority value is designated by the setting information.In the event that a JP2 packet that is the extracted data put intopacket form is determined to be a JP2 packet for which the priorityvalue is designated, the priority table editing section 164 advancesprocessing to step S9 and sets the value of the variable NP to all ofthe priority values of each JP2 packet for which the packet number isFJP to (NJP−1).

In step S10, the priority table editing section 164 assigns the priorityvalue designated based on the setting information to the variable NP. Instep S11, the value of the variable NJP is assigned to the variable FJP.In step S12, one is added to the value of the variable NJP.

The priority table editing section 164, having completed the processingof step S12, in step S13, compares the value of the variable NJP and thevalue of the variable JP2NUM set in step S2, and determines whether ornot both match.

In the event that it is determined that the value of the variable NJP issmaller than the variable JP2NUM (that there is no matching), thepriority table editing section 164 returns processing to step S8 andrepeats the processing for thereafter. Namely, in the event that the JP2packet for which the priority value is designated is processed, thepriority table editing section 164 sets JP2 packets reserved in theprocessing up to now and sets priory values regardless of priority valuesetting rules set in step S4. Priority values for all of the JP2 packetsare then set by repeating the processing of step S8 to step S13including the processing of step S15 to step S21 of FIG. 15 describedlater.

In step S13, in the event that the value of the variable NJP and thevalue of the variable JP2NUM coincide, the priority table editingsection 164 advances processing to step S14, the priority values of eachof the JP2 packets of numbers FJP to NJP are all set to the value of thevariable NP, and the priority table generation process ends.

Further, in step S8 of FIG. 14, in the event that it is determined thatthe JP2 packet that is the extracted data put into packet form is not aJP2 packet designated by the priority value, the priority table editingsection 164 advances processing to step S15 of FIG. 15.

In step S15 of FIG. 15, the priority table editing section 164determines whether or not the rule for setting priority values set instep S4 is the first rule for incrementing the set priority value everyJP2 packet.

In the event that the setting rule is determined to be the first rule,the priority table editing section 164 advances processing to step S19,and the value of the variable NP is set as the priority value of JP2packets of numbers FJP to (NJP−1). In step S20, the priority tableediting section 164 adds one to the value of the variable NP. In stepS21, after assigning the value of the variable NJP to the variable FJP,step S12 of FIG. 14 is returned to, and the processing thereafter isrepeated.

Namely, in the event that the rule for setting the priority value is thefirst rule, the priority table editing section 164 sets the priorityvalue regardless of what kind of packet the JP2 packet that is theextracted data put into packet form is, and adds “1” to the value of thevariable NP set as the priority value so as to increment this value.

Further, in step S15 of FIG. 15, in the event that it is determined thatthe rule for setting the priority value is not the first rule, thepriority table editing section 164 advances processing to step S16, anda determination is made as to whether or not the rule for setting thepriority value set in step S4 is the second rule for incrementing theset priority value every time the level of importance of a JP2 packetchanges.

In the event that the second rule is determined to be present, thepriority table editing section 164 advances processing to step S17, anda determination is made as to whether the level of importance of thetarget JP2 packet is equal to the value of the variable NL.

In the event that the level of importance of the JP2 packet changes soas to become a different value to the level of importance of theprevious JP2 packet so that the level of importance of the target JP2packet is determined not to be equal to the value of the variable NL,the priority table editing section 164 advances processing to step S18,and after assigning the value of the level of importance of the targetJP2 packet to the variable NL, the processing is advanced to step S19,and the processing from thereafter is repeated.

Further, in step S17, in the event that the level of importance of theJP2 packet does not change so as to be the same value as the level ofimportance of the previous JP2 packet, so that the level of importanceof the JP2 packet constituting a target is determined to be equal to thevalue of the variable NL, the priority table editing section 164 returnsto step S12 of FIG. 14, and the processing from thereafter is repeated.

Namely, in the event that the rule for setting the priority value is thesecond rule, the level of importance of the JP2 packet that is theextracted data put into packet form changes, or the priority value isset and the level of importance of the JP2 packet does not change, theprocessing of this packet is deferred, and the processing of the nextJP2 packet is proceeded to.

Further, in step S16, in the event that it is determined that the rulefor setting the priority value set in step S4 is the third rule wherethe set priority value is not incremented and not the second rule, thepriority table editing section 164 returns the processing to step S12 ofFIG. 14, and the processing thereafter is repeated.

Namely, in the event that the rule for setting the priority value is thethird rule, the priority table editing section 164 defers processingwith respect to all JP2 packets other than JP2 packets for whichpriority values have been designated and advances processing to the nextJP2 packet.

As a result of the above, the table generation apparatus 101 executespriority table generation processing. As a result, the table generationapparatus 101 is able to make a priority table with priority values setfor all of the JP2 packets even if priority values have not been set forall of the JP2 packets.

FIG. 17 is a view showing an example of a priority value made by thepriority table generation process described above.

In FIG. 17, the JPEG 2000 data is configured from two tiles, with asingle tile being divided into six JP2 packets (JP2_0 to JP2_5). Asshown in FIG. 17, the level of importance of each JP2 packet is set tothree levels of high, medium, and low.

The results of setting priority values to this kind of JPEG 2000 dataare shown as pattern 1-1 to 1-5, 2-1 to 2-3, and 3-1 to 3-3. The valuessurrounded by squares show priority values set in advance by a user in atable contained in the setting information.

The patterns 1-1 and 1-2 show an example of priority values in the eventwhere the value “10” is set as the priority value for the first JP2packet (JP2_0) for each tile, the value “20” is set as the priorityvalue for the second JP2 packet (JP2_1), and the value “30” is set asthe priority value of the fifth JP2 packet (JP2_4).

The third rule is used for the pattern 1-1. The priority value is notincremented for JP2 packets other than the JP2 packets for whichpriority values are designated. The same value as for the priority valueof a JP2 packet designated immediately before is set at each JP2 packet.

The first rule is employed for the pattern 1-2. The priority value isincremented every JP2 packet with the limitation that the priority valuedesignated next is not exceeded even for JP2 packets other than JP2packets for which priority values have been designated. A valuedifferent to the priority value of the JP2 packet immediately before istherefore set at each JP2 packet.

The patterns 1-3 to 1-5 show an example of priority values in the eventwhere the value “10” is set as the priority value for the first JP2packet (JP2_0) for each tile and the value “20” is set as the priorityvalue for the second JP2 packet (JP2_1).

The third rule is used for the pattern 1-3. The priority value is notincremented for JP2 packets other than the JP2 packets for whichpriority values are designated. The same value as for the priority valueof a JP2 packet designated immediately before is set at each JP2 packet.

The first rule is employed for the pattern 1-4. The priority value isincremented every JP2 packet with the limitation that the priority valuedesignated next is not exceeded even for JP2 packets other than JP2packets for which priority values have been designated. A valuedifferent to the priority value of the JP2 packet immediately before istherefore set at each JP2 packet.

The second rule is employed for the pattern 1-5. The priority value isincremented every time the level of importance of a JP2 packet changes,with the limitation that the priority value designated next is notexceeded for JP2 packets other than JP2 packets for which priorityvalues have been designated. A value different to the priority value ofthe JP2 packet immediately before is therefore set at this JP2 packet inthe event that the level of importance of a JP2 packet changes.

The patterns 2-1 to 2-3 show examples of priority values in the event ofsetting the value “10” as the priority value of the first JP2 packet(JP2_0) of each tile.

The third rule is used for the pattern 2-1. The priority value is notincremented for JP2 packets other than the JP2 packets for whichpriority values are designated. The same value as for the priority valueof a JP2 packet designated immediately before is set at each JP2 packet.

The first rule is employed for the pattern 2-2. The priority value isincremented every JP2 packet with the limitation that the priority valuedesignated next is not exceeded even for JP2 packets other than JP2packets for which priority values have been designated. A valuedifferent to the priority value of the JP2 packet immediately before istherefore set at each JP2 packet.

The second rule is employed for the pattern 2-3. The priority value isincremented every time the level of importance of a JP2 packet changes,with the limitation that the priority value designated next is notexceeded for JP2 packets other than JP2 packets for which priorityvalues have been designated. A value different to the priority value ofthe JP2 packet immediately before is therefore set at this JP2 packet inthe event that the level of importance of a JP2 packet changes.

The patterns 3-1 to 3-3 show examples of priority values in the eventthat property values are not set at all.

The third rule is used for the pattern 3-1. The priority value is notincremented for JP2 packets other than the JP2 packets for whichpriority values are designated. The same value as for the priority valueof a JP2 packet designated immediately before is set at each JP2 packet.

The first rule is employed for the pattern 3-2. The priority value isincremented every JP2 packet with the limitation that the priority valuedesignated next is not exceeded even for JP2 packets other than JP2packets for which priority values have been designated. A valuedifferent to the priority value of the JP2 packet immediately before istherefore set at each JP2 packet.

The second rule is employed for the pattern 3-3. The priority value isincremented every time the level of importance of a JP2 packet changes,with the limitation that the priority value designated next is notexceeded for JP2 packets other than JP2 packets for which priorityvalues have been designated. A value different to the priority value ofthe JP2 packet immediately before is therefore set at this JP2 packet inthe event that the level of importance of a JP2 packet changes.

In the above, the set priority value is stored in the table database 303made at the storage section 123 as a priority table as shown in FIG. 18to FIG. 20 and is referenced by the distribution server 103 when puttingthe JPEG 2000 data into the form of packets.

FIG. 18 is a view showing an example of a priority table made by thetable generation apparatus 101.

In FIG. 18, the priority table 361 is a table configured using priorityvalues set using the third rule described above. Priority values are setfor all of the JP2 packets in the priority table 361.

In the example in FIG. 18, in the event that the layer is “0”, if theresolution is “0”, the priority value is taken to be “10”. When theresolution is “1”, the priority value is taken to be “20”. When theresolution is “2”, the priority value is taken to be “20”, withoutincrementing taking place. Further, if the resolution is “0” with alayer of “1”, the priority value is taken to be “20” and incrementingdoes not take place. When the resolution is “1”, the priority value istaken to be “30”. When the resolution is “2”, the priority value istaken to be “30”, without incrementing taking place.

FIG. 19 is a view showing a further example of a priority table made bythe table generation apparatus 101.

In FIG. 19, the priority table 362 is a table configured using priorityvalues set using the first rule described above. Priority values are setfor all of the JP2 packets in the priority table 362.

In the example in FIG. 19, in the event that the layer is “0”, if theresolution is “0”, the priority value is taken to be “10”. When theresolution is “1”, the priority value is taken to be “20”. When theresolution is “2”, the priority value is incremented and is taken to be“21”. Further, if the resolution is “0” with a layer of “1”, thepriority value is taken to be “22” and incrementing does not take place.When the resolution is “1”, the priority value is taken to be “30”. Whenthe resolution is “2”, the priority value is incremented so as to betaken to be “31”.

FIG. 20 is a view showing a still further example of a priority tablemade by the table generation apparatus 101.

In FIG. 20, the priority table 363 is a table configured using priorityvalues set using the second rule described above. Priority values areset for all of the JP2 packets in the priority table 363.

In the example in FIG. 20, in the event that the layer is “0”, if theresolution is “0”, the priority value is taken to be “10”. When theresolution is “1”, the priority value is taken to be “20”. When theresolution is “2”, the priority value is taken to be “20”, withoutincrementing taking place. Further, if the resolution is “0” with alayer of “1”, the priority value is incremented so as to become “21” andincrementing does not take place. When the resolution is “1”, thepriority value is taken to be “30”. When the resolution is “2”, thepriority value is taken to be “30”, without incrementing taking place.

In the above, the table generation apparatus 101 sets priority valuesfor all of the JP2 packets using priority values designated only forsome JP2 packets by a user. It is therefore straightforward for any kindof priority table to be made by the user.

In the above, “system” refers to the overall apparatus configured from aplurality of apparatuses.

Further, the table generation apparatus 101 and distribution server 103of FIG. 6 are described as being constructed separately but this is byno means limiting and the table generation apparatus 101 anddistribution server 103 may also make up a single apparatus.

The series of processes described above are executed using hardware, butmay also be executed using software. When the series of processes isimplemented using software, the programs comprising this software may bebuilt-into dedicated hardware of a computer. Further, as it is possibleto implement various functions by installing the various programs,installation is also possible from a network or recording medium to, forexample, a general-purpose personal computer.

As shown in FISG. 7 and 9, in addition to this recording medium fordistribution providing programs to the users that is separate from theapparatus body being comprised of magnetic discs 131 and 231 (includingflexible discs) recorded with the programs, optical discs 132 and 232(including CD-ROMs (Compact Disk-Read Only Memory) and DVDs (DigitalVersatile Discs)), magneto-optical discs 133 and 233 (including MDs(Mini-Discs) (trademark)), or packaged media such as semiconductormemory 134 and 234 etc., the programs may also be provided to the usersin a manner built-into the apparatus body, such as in the case of ROM112 and 212 recorded with the programs or with hard discs containingstorage sections 123 and 223 etc.

In this specification, the steps described by programs recorded inrecording media are for processing carried out in chronological order inthe order disclosed but this processing by no means has to be carriedout in chronological order, and these processes may also be executed inparallel or individually.

INDUSTRIAL APPLICABILITY

In the above, according to the present invention, it is possible to makea priority table. In particular, this can be made in a straightforwardmanner.

1. An information processing apparatus for generating a priority tablethat serves as a mapping table between each of packets of image data inpacket form and a priority value representing a priority of the packet,the information processing apparatus characterized by comprising:setting information acquisition means for acquiring setting informationfor which priority values corresponding to some of packets within imagedata put into packet form are designated; packet information read-outmeans for reading out packet information containing information relatingto putting image data into the form of packets from the image data; andpriority table generation means for generating a priority table withpriority values set for all packets based on setting informationacquired by the setting information acquisition means and packetinformation read out by the packet information reading means.
 2. Theinformation processing apparatus according to claim 1, characterized inthat: the packet information contains the numbers of packets and thelevels of importance corresponding to the image data.
 3. The informationprocessing apparatus according to claim 2, characterized by furtherincluding: setting rule deciding means for deciding rules for settingpriority values for all of the packets may be further provided; whereinthe priority table generation means uses the rules decided by thesetting rules deciding means to set priority values for all of thepackets and make the priority table.
 4. The information processingapparatus according to claim 3, characterized in that: the prioritytable generation means sets a priority value larger than a value set forone previous packet if a priority value is set for packets other thanpackets set with priority values using the setting information.
 5. Theinformation processing apparatus according to claim 3, characterized inthat: in an event that priority values are set for packets other thanpackets set with priority values using the setting information, thepriority table generation means sets a priority value larger than thevalue set for one packet previous if the packet's level of importance isdifferent to the packet's level of importance for one packet previous; apriority value that is the same value as the value set for one packetprevious is set if the packet's level of importance is the same as thepacket's level of importance for one packet previous.
 6. The informationprocessing apparatus according to claim 3, characterized in that: thepriority table generation means sets a priority value that is the samevalue as a value set for one packet previous if a priority value is setfor packets other than packets set with priority values using thesetting information.
 7. An information processing method for generatinga priority table that serves as a mapping table between each of packetsof image data in packet form and a priority value representing apriority of the packet, the information processing method characterizedby comprising: a setting information acquisition controlling step ofcontrolling acquisition of setting information for which priority valuescorresponding to some of packets within image data put into packet formare designated; a packet information read-out step of reading out packetinformation containing information relating to putting image data intothe form of packets from the image data; and a priority table generationstep of generating a priority table with priority values set for allpackets based on setting information acquired by processing of thesetting information acquisition control step and packet information readout by processing of the packet information reading step.
 8. A recordingmedium storing a computer readable program for an information processingapparatus that generates a priority table that serves as a mapping tablebetween each of packets of image data in packet form and a priorityvalue representing a priority of the packet, the program characterizedby comprising: a setting information acquisition controlling step ofcontrolling the acquisition of setting information for which priorityvalues corresponding to some of packets within image data put intopacket form are designated; a packet information read-out step ofreading out packet information containing information relating toputting image data into the form of packets from the image data; and apriority table generation step of generating a priority table withpriority values set for all packets based on setting informationacquired by processing of the setting information acquisition controlstep and packet information read out by processing of the packetinformation reading step.
 9. A program that is executable in a computercontrolling an information processing apparatus for generating apriority table that serves as a mapping table between each of packets ofimage data in packet form and a priority value representing a priorityof the packet, the program characterized by comprising: a settinginformation acquisition controlling step of controlling the acquisitionof setting information for which priority values corresponding to someof packets within image data put into packet form are designated; apacket information read-out step of reading out packet informationcontaining information relating to putting image data into the form ofpackets from the image data; and a priority table generation step forgenerating a priority table with priority values set for all packetsbased on setting information acquired by processing of the settinginformation acquisition control step and packet information read out byprocessing of the packet information reading step.